package com.dropbox.examples.notes; import java.util.List; import android.content.Context; import android.text.format.DateFormat; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.TextView; import com.dropbox.sync.android.DbxFileInfo; /** * Adapts a {@code List<DbxFileInfo>} to be displayed in a listview. * Displays folders as disabled. */ class FolderAdapter extends BaseAdapter { private final List<DbxFileInfo> mEntries; private final LayoutInflater mInflater; private final Context mContext; public FolderAdapter(Context context, List<DbxFileInfo> entries) { mEntries = entries; mContext = context; mInflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); } @Override public int getCount() { return mEntries.size(); } @Override public Object getItem(int position) { return mEntries.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { if (convertView == null) { convertView = mInflater.inflate( android.R.layout.simple_list_item_activated_2, parent, false); } DbxFileInfo info = mEntries.get(position); TextView text = (TextView)convertView.findViewById(android.R.id.text1); text.setText(getName(info)); TextView text2 = (TextView)convertView.findViewById(android.R.id.text2); if (info.isFolder) { text2.setText(R.string.status_folder); text.setEnabled(false); text2.setEnabled(false); } else { String modDate = DateFormat.getMediumDateFormat(mContext).format(info.modifiedTime) + " " + DateFormat.getTimeFormat(mContext).format(info.modifiedTime); text2.setText(modDate); text.setEnabled(true); text2.setEnabled(true); } return convertView; } @Override public boolean isEnabled(int position) { DbxFileInfo info = mEntries.get(position); return !info.isFolder; } private String getName(DbxFileInfo info) { return Util.stripExtension("txt", info.path.getName()); } }